nickswalker / neueresume
简单的、强大的、基于XML的简历解决方案。
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-10 01:29:05 UTC
README
A simple PHP rèsumè template. Create a resume that lives on the web, but prints like it was born in a word processor. View a live demo here.
特性
- 易于更新的XML格式
- 包含工作或项目部分的链接和图片
- 包含社交媒体链接(Github, Twitter等)
- 设计精美的默认主题,打印效果完美
- 完全可定制...
- 或者只需用简单的自定义CSS调整
安装
###使用Composer
将nickswalker/neueresume
添加到composer.json
的require部分。运行composer update
。你现在应该可以访问到\Nickswalker\NeueResume\NeueResume
,这是项目的主类。使用完整的简历.xml路径和主题的完整路径构建一个NeueResume对象。以下是一个基本实现,适用于服务器根目录的安装。
require 'vendor/autoload.php'; $themePathFromRoot = realpath('themes/default'); //Where is your theme? //Note that the theme MUST be in a publicly accesible directory! //Otherwise your CSS won't load :( $resumePathFromRoot = realpath('resume.xml'); $neueresume = new \Nickswalker\NeueResume\NeueResume($resumePathFromRoot, $themePathFromRoot); $neueresume->display();
你需要将index.php、resume.xml、主题文件夹和图片文件夹从composer放置它们的vendor
目录移动到你想让简历可用的位置,否则使用composer update
更新会覆盖文件。请注意,主题目录必须在服务器上公开可访问。修改index.php中的路径以适应你的更改。
###不使用Composer
转到上面的发布标签并下载最新版本的存档。直接从GitHub下载源代码将不会工作,因为它不会包含vendor目录和composer自动加载文件。将其解压缩到运行PHP 5.3或更高版本的PHP服务器上的你想要的安装位置,然后你就可以开始使用了。
用法
###添加简历内容
查看包含的示例resume.xml
文件。你会发现它是100%可读的,并且相当直观。bio
标签及其节点正是其名称所表示的内容,但接下来的部分节点需要一些解释。
重要提示:确保在标签中转义任何HTML实体。否则你会得到奇怪的错误。例如,<
、>
、&
将变成<
、>
、&
。这里有一个优秀的工具可以将它们转换为XML安全实体。
####部分类型
一个section
节点有一个标题和类型属性。标题可以是任何你喜欢的,但只有少数几种类型。它们根据你希望在一个特定的部分放置多少细节和强调而有所不同。例如,一个list
部分非常适合技能的列表,而一个highlight
列表部分则更适合先前工作经验的列表(你可能会想包括说明、日期,甚至图片和链接)。
#####列表
最简单的部分类型。它有item
子节点。没有子节点的item
节点的内容成为项目符号文本。
<section title="skills" type="list"> <item>Adobe Photoshop</item> <item>Adobe Illustrator </item> <item>Adobe After Effects</item> <item>HTML5</item> </section>
#####详细列表
比普通列表提供的信息更多。具有 item
子节点。 item
子节点可能包含 title
、副标题、
日期、
链接和
文本子节点。这对于只想展示奖项名称和领奖日期的奖项列表来说效果很好。默认情况下,text
节点将成为条目的悬停文本。如果您需要一句话的解释或图片,您将希望使用高亮列表。
<section title="awards" type="detail-list"> <item> <title>Outstanding Synergizer</title> <link>http://synergy.dev</link> <subtitle>Board for the Greater Synergy</subtitle> <date>2015</date> <text>Hard to get.</text> </item> <item> <title>Achievement in Double Speak</title> <subtitle>Commission for California Culture</subtitle> <date>2011</date> </item> </section>
#####分组列表
具有 group
子节点。分组节点具有格式与详细列表部分子节点相同的 item
子节点。
<section title="awards" type="detail-list"> <group title="work related"> <item> <title>Outstanding Synergizer</title> <link>http://synergy.dev</link> <subtitle>Board for the Greater Synergy</subtitle> <date>2015</date> <text>Hard to get.</text </item> </group> <group title="School"> <item> <title>Achievement in Double Speak</title> <subtitle>Commission for California Culture</subtitle> <date>2011</date> </item> </group> </section>
#####高亮列表
具有 item
子节点。高亮列表的 item
节点具有与详细列表相同类型的子节点,并增加了 image
节点,该节点接受路径(从安装文件夹的相对路径或绝对路径,如果愿意的话)。
<section title="objective" type="text"> <item> <title>Facebook</title> <image>http://facebook.com/marketing-team.jpg</image> <subtitle>Senior Marketing Engineer</subtitle> <date>2012</date> <text>Designed motivating user incentives through the popular 'carrot and stick' framework. </text> </item> <item> <title>Threadless</title> <image>images/shirt.png</image> <subtitle>Print Designer</subtitle> <date>2011-2012</date> <text>Designed inexpensive, synergistic T-shirt reconcepulizations to morph niche markets into main street main stays. </text> </item> </section>
此外,高亮列表的一个特殊功能是能够添加任意项目元素。如果您想包含一小段 HTML,一个用于创建链接的锚点元素,可以通过指定一个类型为 arbitrary
的项目并通过 CDATA
标签包装其内容来实现。这将转义任何特殊字符,所以您可以自由地包含任何您喜欢的内容。请注意,标签的内容将按原样直接写入列表的适当位置,而不进行任何处理。
<item type="arbitrary"> <![CDATA[ <article class="see-more"><a href="http://nickwalker.us/">See a gallery of work examples...</a></article> ]]> </item>
#####任意
如果您希望完全控制某个部分,也许您想放置一个包含您的作品集等的大链接栏,您可以使用 arbitrary
部分类型将任意内容放入一个部分。如果包含 HTML,请用 CDATA 标签包裹。
<section title="links" type="arbitrary"> <![CDATA[ <a href="/gallery" class="full-work"> View my photography portfolio.</a> ]]> </section>
该部分将不会使用主题定义的部分格式进行处理。
#####文本
适用于使命宣言或目标。没有子节点。
<section title="objective" type="text"> I seek the opportunity to transform cross-platform concepts to reality through gamification and individual social incentivization. </section>
设置
在您的主题目录中,您会找到一个 settings.php
文件,它选择性地覆盖位于 src 文件夹中的根设置文件中的设置。不要修改根文件中的设置,因为在更新期间所有更改都将被覆盖。
主题化
###“我只是想调整一些东西”
很简单!在您的 resume.xml
所在的同一文件夹中添加一个 custom-style.css
文件,您的样式将自动加载。
###“我想编写一个完全定制的主题”
默认主题是 NeueResume 灵活性的一个示例。也就是说,项目的目标是尽可能轻量级,这意味着放弃任何依赖项,包括模板引擎。内置的解析和模板不如许多致力于此目的的 PHP 框架健壮,但它们是/相当不错的/。
####入门
在主题目录中创建一个文件夹。随意命名。在主题目录中创建一个 settings.php
和一个 template.php
文件,您就可以开始了。
####更改列表格式
您可以通过在设置数组中设置以下索引来覆盖 NeueResume 放置 XML 元素的 HTML 结构
return array( 'theme' => array( 'sectionFormat' => $sectionFormat, 'listItemFormat' => $listItemFormat, 'detailListItemFormat' => $detailListItemFormat, 'highlightListItemFormat' => $highlightListItemFormat, 'groupedListGroupFormat' => $groupedListGroupFormat ) );
请注意,您可以覆盖此文件中的 任何 设置(甚至可以创建一些您自己的设置,这将通过传递到您正在处理的模板中的 $settings
变量来访问)。默认的 highlightListItemFormat
索引的字符串(可在根 settings.php
文件中找到)看起来像这样
<article> <hgroup> <h2>{{Title}}</h2><a class="icon-link"href="{{Link}}"><a class="icon-picture" href="{{ImagePath}}"></a> <h3>{{SubTitle}}</h3> <h4>{{Date}}</h4> </hgroup> <p>{{Text}}</p> </article>
双大括号内的单词将替换为其对应的 item
节点的内容。
还有整个部分渲染的方式格式
$this->settings['theme']['sectionFormat'] = ' <section class="{{Type}} {{Title}}"> <div class="left"> <h2>{{Title}}</h2> </div> <div class="right"> {{SectionContent}} </div> </section> ';
####更改页面结构
您主题文件夹中的 template.php
是您可以更改整个页面的地方。将其视为一个HTML文件,您可以从该文件中调用PHP以获取一些重要变量。 <?php $this->showResume();?>
将按与XML中指定的相同顺序输出处理后的 section
节点。您可以通过 $bio
作为字符串访问 <bio>
的子元素。例如,您可以指定页面标题如下
<title><?php echo $bio['name'];?> | <?php echo $bio['email'];?></title>
您还可以访问通过 $settings
指定的任何设置。
要显示您的简历部分,请调用 $this->displaySections()
。您的简历.xml中的所有 section
节点都将使用您指定的格式进行解析并打印出来。
问题
发现了一个错误?请在GitHub上创建一个问题,网址为 https://github.com/nickswalker/neueresume/issues