nickswalker/neueresume

此包已被放弃且不再维护。未建议替代包。

简单的、强大的、基于XML的简历解决方案。

1.2.2 2014-08-01 00:00 UTC

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实体。否则你会得到奇怪的错误。例如,<>&将变成&lt;&gt;&amp;。这里有一个优秀的工具可以将它们转换为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